/**
 * 
 */
package br.com.sguc.entidade;

import java.io.Serializable;
import java.sql.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * @author Jonas Nadolny - 22/08/2013
 *
 */
@Entity
@Table(name="Topico")
public class Topico implements Serializable {

	private static final long serialVersionUID = -4276447406770430416L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="id_topico", unique=true, nullable=false)
	private Integer idTopico;
	
	@Column(name="titulo_topico", nullable=false, length=65)
	private String tituloTopico;
	
	@Column(name="tdetalhe", nullable=false, length=140)
	private String detalhes;
	
	@Column(name="data_criacao", nullable=true)
	private Date dataCriacao;
	
	@Column(name="ultima_atualizacao", nullable=true)
	private Date ultimaAtualizacao;
	
	@Column(name="status", unique=false, nullable=true, length=20)
	private String status;
	
	@ManyToOne
	@JoinColumn(referencedColumnName="id_usuario", name="id_usuario")
	private Usuario usuario;

	@OneToMany(mappedBy="topico")
	private List<Comentario> comentarios;
	
	public Integer getIdTopico() {
		return idTopico;
	}

	public void setIdTopico(Integer idTopico) {
		this.idTopico = idTopico;
	}

	public String getTituloTopico() {
		return tituloTopico;
	}

	public void setTituloTopico(String tituloTopico) {
		this.tituloTopico = tituloTopico;
	}

	public String getDetalhes() {
		return detalhes;
	}

	public void setDetalhes(String detalhes) {
		this.detalhes = detalhes;
	}

	public Date getDataCriacao() {
		return dataCriacao;
	}

	public void setDataCriacao(Date dataCriacao) {
		this.dataCriacao = dataCriacao;
	}

	public Date getUltimaAtualizacao() {
		return ultimaAtualizacao;
	}

	public void setUltimaAtualizacao(Date ultimaAtualizacao) {
		this.ultimaAtualizacao = ultimaAtualizacao;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public List<Comentario> getComentarios() {
		return comentarios;
	}

	public void setComentarios(List<Comentario> comentarios) {
		this.comentarios = comentarios;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
}
